package com.dy.realtime.common.bean;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @projectName: MedicalTreatment
 * @package: com.dy.realtime.common.bean
 * @className: DwsTradeHospPatGenAGConsulPaySucBean
 * @author: DuanYu
 * @description: TODO
 * @date: 2025/3/14 10:33
 * @version: 1.0
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class DwsTradeHospPatGenAGConsulPaySucBean {
    // 问诊 ID

    String id;

    // 问诊支付成功时间
    String consultationPaySucTime;

    // 诊金
    BigDecimal consultationFee;

    // 医生 ID
    String doctorId;

    // 医院 ID
    String hospitalId;

    // 医院名称
    String hospitalName;

    // 病人 ID
    String patientId;

    // 性别编码
    String patientGenderCode;

    // 性别名称
    String patientGender;

    // 年龄段
    String ageGroup;

    // 用户 ID
    String userId;

    // 窗口起始时间
    String stt;

    // 窗口结束时间
    String edt;

    // 当天日期
    String curDate;

    // 问诊支付成功金额
    BigDecimal consultationPaySucAmount;

    // 问诊支付成功次数
    Long consultationPaySucCount;

    public Long getTs() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
        // 解析字符串为 LocalDateTime 对象
        LocalDateTime localDateTime = LocalDateTime.parse(consultationPaySucTime, formatter);
        // 将 LocalDateTime 转换为 ZonedDateTime，使用系统默认时区
        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
        // 获取毫秒值
        long millis = zonedDateTime.toInstant().toEpochMilli();
        return millis;
    }
}
